在大多數物件導向的程式語言中,有一種最常用的語法就是function啦!
在 Swift 裡的函式語法跟其他語言很像,接下來我們先從格式開始看起!
func 函式名稱(參數名: 型別) -> 回傳型別 {
    // 執行的程式內容
    return 回傳的資料
}
func 是定義function時會用到的關鍵字
我們可以自行決定是否帶入參數,也可以選擇回傳一個值或不回傳
接下來會用例子來舉例簡單的function用法
func fruitPrice() -> String{
    var apple = 10
    var grape = 20
    
    if apple > grape{
        return "蘋果比較貴"
    }else{
        return "葡萄比較貴"
    }
}
let result = fruitPrice()
print(result)  // ➜ 輸出:葡萄比較貴
就像範例使用的一樣我可以自由的選擇設定的回傳型別,並透過設定變數來取得回傳值
最後print出來
在範例中用到了前天我們介紹的if-else語法,昨天介紹的for, while迴圈也能應用在function哦
接下來我們來介紹所謂的巢狀function
有寫過程式的大家相信都已經想到了拔!
沒錯!就是在function裡面再包一個function
先來看看格式吧!
func outFunc() {    //外圈func
    // 執行的程式內容
    return 回傳的資料
    func inFunc() {    //內圈func
        // 執行的程式內容
        return 回傳的資料
    }
    inFunc()  // 呼叫內層函式
}
巢狀function就是在一個function內部再定義另一個function
內層的function只能在它的外部函式中被呼叫
這樣可以讓功能更封裝、更有條理,也有助於程式邏輯的維護與安全性。
既然大家都了解了那我們先來看個例子吧!
func checkFruitPrice(apple: Int, grape: Int) -> String {
    func compare() -> String {
        
        if apple > grape {
            return "蘋果比較貴"
        } else if apple < grape {
            return "葡萄比較貴"
        } else {
            return "兩者一樣貴"
        }
    }
    return compare()
}
let result = checkFruitPrice(apple: 15, grape: 20)
print(result)  // ➜ 輸出:葡萄比較貴
我們用今天教的funtion作為例子使用巢狀的方式的去判斷水果的價格
今天先簡單的介紹到這邊,明天我們介紹閉包closure!